昨天我們學會用路由(Routing)設定網址和功能了,但如果把所有功能都直接寫在 routes/web.php
,到後面寫久了會變得很亂,也不方便維護!
你可以把 Controller 想成「餐廳的服務生」:
這樣每個角色分工清楚,程式就不會全部都擠在一起!
Laravel 提供指令快速建立 Controller,例如:
php artisan make:controller HelloController
會在app/Http/Controllers/
裡生成一個 HelloController.php
打開 HelloController.php,加上:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HelloController extends Controller
{
public function index()
{
return 'Hello from Controller!';
}
}
編輯 routes/web.php
:
use App\Http\Controllers\HelloController;
Route::get('/hello', [HelloController::class, 'index']);
這代表:
訪問 /hello
Laravel 會去找 HelloController 的 index() 方法執行
Request 就像「客人的點單」,包含客人送來的所有資料(表單輸入、網址參數等)
例如:接收表單輸入
public function greet(Request $request)
{
$name = $request->input('name');
return "你好,$name!";
}
搭配路由:
Route::post('/greet', [HelloController::class, 'greet']);